package utils;

import entity.Cart;
import entity.Order;
import entity.User;

public class SessionData {
    
    // NIEUW
    private Cart cart;
    private User user;
    
    // OUD
    //private long userId;
   // private List<CartItem> cartItems;
    
    public SessionData() {
        cart = null;
        user = null;
        
        //userId = -1;
        //cartItems = new ArrayList<CartItem>();
    }
    
    public Cart getCart() {
        return cart;
    }
    
    public void login(User user) {
        this.user = user;
        this.cart = new Cart(user);
    }
    
    /**
     * Geeft het User object terug dat bij deze sessie hoort.
     * 
     * @return 
     */
    public User getUser() {
        /*
        User user;
        EntityManagerFactory fact = Persistence.createEntityManagerFactory("vh11i_jeePU");
        EntityManager em = fact.createEntityManager();
        
        try {
            user = em.find(User.class, userId);
        }
        finally {
            em.close();
            fact.close();
        }*/
        
        return user;
    }
    

    /*
    public int getProductQuantity(Product product) {
        
        int result = 0;
        CartItem cartItem = getCartItemByProduct(product);
        
        if (cartItem != null) {
            result = cartItem.quantity;
        }
        
        return result;
    }*/
    
    /**
     * Verwijdert een product uit de cart.
     * 
     * @param product product dat weg moet.
     */
    /*
    public void remove(Product product) {
        CartItem cartItem = getCartItemByProduct(product);
        cartItems.remove(cartItem);
    }
    */
    
    /*
    public void emptyCart() {
        if (orderStatus.) {
            cart.clear();
        }
    }
    * 
    */
    
    /**
     * Interne zoek methode om een cart item te vinden bij een bepaald product.
     * 
     * @param product
     * @return 
     */
    /*
    private CartItem getCartItemByProduct(Product product) {
        CartItem result = null;
        for (CartItem cartItem : cartItems) {
            if (cartItem.productId == product.getId()) {
                result = cartItem;
                break;
            }
        }
        return result;
        * }
    */
    /*
    public void print() {
        System.out.println("USER: " + getUser().getFirstName());
        for (CartItem c : cartItems) {
            System.out.println("productId:" + c.productId + " quantity:" + c.quantity);
        }
    }*/
    /*
    private class CartItem {
        private int quantity;
        private long productId;
    }
    * 
    */
}
